$(document).ready(
    function()
    {
        $(window).resize(
            function()
            {
                $('#espDisable').css("height",$(document).height());
                $('#espDisable').css("width",$(document).width());
                $('.popUp').css("top", ($(window).height() - $('.popUp').outerHeight()) / 2 + $(window).scrollTop() + "px");
                $('.popUp').css("left", ($(window).width() - $('.popUp').outerWidth()) / 2 + $(window).scrollLeft() + "px");
            }
        );
        $('.popUp').each(
            function()
            {
                $(this).css("top", ($(window).height() - $(this).outerHeight())
                    / 2 + $(window).scrollTop() + "px");
                $(this).css("left", ($(window).width() - $(this).outerWidth())
                    / 2 + $(window).scrollLeft() + "px");
            }
        );
        //Fonction pour ne pas soumettre en appuyant sur Entrer dans un champs de texte d'un résultat
//      $('.unCours td :text').keyPress(
//          function(e)
//          {
//              if(e.keyCode == 10 || e.keyCode == 13)
//              {
//                  e.preventDefault();
//              }
//          }
//      ); 
    
        $('.unCours:odd').addClass('impair');
        // On détermine l'image pour la prochaine et la dernière page
        var num = $('#numPage').val();
        if(num <= 1)
        {
            $('#prevCours').attr('src', 'Images/prev_disabled.png');
            $('#prevCours').removeClass('pointer');
        }
        if($('#totCours').val() <= ($('#numPage').val() * 20))
        {
            $('#nextCours').attr('src', 'Images/next_disabled.png')
            $('#nextCours').removeClass('pointer');
        }

        // On remplis les listes de professeurs
        chercherProfesseurs("aucun", "#selectRechProf", "", "#rechIdProf");
        chercherProfesseurs("aucun", "#nouveauProf", "", "#nouveauIdProf");
        $('.selectProf').each(
            function()
            {
                var idCours = $(this).attr('id').substr(4);
                var elemDOM = $(this).attr('id');
                var domaine = $($(this).attr('selectDomaineProf')).val();
                var choix   = $('#choixProf' + idCours).attr('value');
                var elemID  = '#choixProf' + idCours;
                $('#' + elemDOM).removeClass('invalide');

                chercherProfesseurs(domaine,'#' + elemDOM, choix, elemID);
            }
        );

        // Fonction pour mettre à jour une liste de professeurs au changement du domaine d'étude
        $("#nouveauDomaine, #selectRechDomaine, .selectDomaineProf").change(
            function()
            {
                var idProf = $(this).attr('idProf');
                var elemDOM = $(this).attr('selectProfId');
                var domaine = $(this).val();
                var choix   = "";

                if($(elemDOM) == undefined)
                {
                    choix = "";
                }
                else
                {
                    choix = $(elemDOM).attr('value');
                }

                chercherProfesseurs(domaine,elemDOM, choix, idProf);
            }
        );

        // Fonction pour gérer le changement dans les listes de professeurs    
        $('.selectProf').change(
            function()
            {
                var idCours = $(this).attr('id').substr(4);
                $('#choixProf' + idCours).attr('value', $(this).val());    
            }
        );

        // Fonction pour faire la recherche au click du bouton
        $('#btnRecherche').click(
            function()
            {
                $('#formRecherche').submit();
            }
        );

        // Fonction pour faire la recherche en appuyant sur la touche "Enter" dans un critère
        $('.critere').keypress(
            function(e)
            {
                if(e.keyCode == 10 || e.keyCode == 13)
                {
                    $('#btnRecherche').click();
                }
            }
        );

        // Fonction faisant en sorte qu'un seul cours est coché à la fois
        $('.chkCours').change(
            function()
            {
                var idCheck = $(this).attr('id');
                if($(this).is(':checked'))
                {
                    $('.chkCours').each(
                        function()
                        {
                            if($(this).attr('id') != idCheck)
                            {
                                $(this).attr('checked', false);
                            }
                        }
                    );
                }
            }
        );

        // Fonction pour accéder au cours sélectionné
        $('#btnAcceder').click(
            function()
            {
                var idCours = '';

                // On gère la possibilité qu'il n'y aille pas de résultats
                if($('.chkCours') !== undefined)
                {
                    // On va chercher le cours sélectionné
                    $('.chkCours').each(
                        function()
                        {
                            if($(this).is(':checked'))
                            {
                                idCours = $(this).attr('id').substring(3);
                            }
                        }
                    );

                    if(idCours == '')
                    {
                        alert($('#gestionCoursAlertSelect').val());
                    }
                    else
                    {
                        $('#coursCourant').attr('value', idCours);
                        $('#formAccederCours').submit();
                    }
                }                    
            }
        );

        // Fonction pour ouvrir la fenêtre d'inscription aux cours
        $('#btnInscription').click(
            function()
            {
                var idCours = '';

                // On gère la possibilité qu'il n'y aille pas de résultats
                if($('.chkCours') !== undefined)
                {
                    // On va chercher le cours sélectionné
                    $('.chkCours').each(
                        function()
                        {
                            if($(this).is(':checked'))
                            {
                                idCours = $(this).attr('id').substring(3);
                            }
                        }
                    );

                    if(idCours == '')
                    {
                        alert($('#gestionCoursAlertSelect').val());
                    }
                    else
                    {
                        $('#txtRecherche').val('');
                        $('#idCoursInscription').val(idCours);
                        $('#espDisable').show();
                        $('#espDisable').css("height",$(document).height());
                        $('#espDisable').css("width",$(document).width());
                        $('#resultatsRecherche').children().remove();
                        $('#choixRecherche').children().remove();

                        // On va chercher les élèves déjà inscrits
                        $('#lstEleves' + idCours + ' li').each(
                            function()
                            {
                                var username = $(this).attr('username');
                                var elem = '<li class="pointer">' + '<input type="hidden" id="choix' + username + '" name="choix_' + username + '" value="' + username + '">' + $(this).html() + '</li>';
                                $('#choixRecherche').append(elem);
                            }
                        );
                        $('#choixRecherche li').click(
                            function()
                            {
                                $(this).remove();
                            }
                        );
                        $('#espInscription').fadeIn(250);
                        $('#espInscription').css("top", ($(window).height() - $('#espInscription').outerHeight()) / 2 + $(window).scrollTop() + "px");
                        $('#espInscription').css("left", ($(window).width() - $('#espInscription').outerWidth()) / 2 + $(window).scrollLeft() + "px");
                    }
                }                    
            }
        );

        $('#txtRecherche').keypress(
            function(e)
            {
                if(e.keyCode == 10 || e.keyCode == 13)
                {
                    $('#btnRechercher').click();
                    e.preventDefault();
                }
            }
        );

        //Fonctions pour exécuter la recherche de cours
        $('#btnRechercher').click(
            function ()
            {
                var nom     = $('#txtRecherche').val();
                var statut = 'élève';
                if(nom.replace(/ /, '').toLowerCase() != '')
                {
                    chercherUsager(nom, statut);  
                }
        }
        );

        //Fonction pour retirer un élève de la sélection
        $('#choixRecherche li').click(
            function()
            {
                $(this).remove();
            }
        );

        // Fonction qui accepte les élèves pour le cours présent
        $('#accepterEleves').click(
            function()
            {
                $('#formInscription').submit();
            }
        );

        // Fonction pour fermer la fenêtre d'inscription aux cours
        $('.annulerInscription').click( 
            function() 
            {
                $('#espDisable').hide();
                $('#espInscription').fadeOut(250);
            }
        );

        // Fonction pour ouvrir la fenêtre de nouveau cours
        $('#btnNouveau').click(
            function ()
            {
                // On réinitialise les champs et les erreurs avant l'ouverture
                $('#errNouvVide').hide();

                $('.infoNouveau').each(
                    function ()
                    {
                        $(this).removeClass('invalide');
                    }
                );

                chercherProfesseurs("aucun", "#nouveauProf", "", "#nouveauIdProf");

                $('.infoNouveau').val('');
                $('#nouveauDomaine').val('aucun');

                $('#espDisable').show();
                $('#espDisable').css("height",$(document).height());
                $('#espDisable').css("width",$(document).width());
                $('#espNouvCours').fadeIn(250);
                $('#espNouvCours').css("top", ($(window).height() - $('#espNouvCours').outerHeight()) / 2 + $(window).scrollTop() + "px");
                $('#espNouvCours').css("left", ($(window).width() - $('#espNouvCours').outerWidth()) / 2 + $(window).scrollLeft() + "px");
        }
        );

        // Fonction pour fermer la fenêtre de nouveau cours
        $('.annulerNouveau').click( 
            function() 
            {
                $('#espDisable').hide();
                $('#espNouvCours').fadeOut(250);
            }
        );

        // Fonction pour soumettre les informations du nouveau cours, si tout est valide
        $('#btnAccepterNouveau').click( 
            function ()
            {
                var valide = true;
                var vide = false;
                $('.infoNouveau').each( 
                    function() 
                    {
                        if($(this).val() == null)
                        {
                            vide = true;
                            $(this).addClass('invalide');
                        } 
                        else if($(this).val().replace(/ /, '') == '')
                        {
                            vide = true;
                            $(this).addClass('invalide');
                        }
                    }
                );
                if(vide)
                {
                    $('#errNouvVide').show();
                    valide = false;
                } 
                else
                {
                    $('#errNouvVide').hide();
                }
                if(valide) 
                {
                    $('#formNouveauCours').submit();
                }
                else
                {
                    alert($('#gestionCoursAlertCorr').val());
                }
            }
        );

        $('#nouveauProf').change(
            function()
            {
                $('#nouveauIdProf').val($(this).val());
            }
        );

        // Fonction pour ne permettre d'entrer que des chiffres dans les champs de groupe
        $('.txtGroupe').keypress(
            function(e)
            {
                if (e.keyCode < 48 || e.keyCode > 57)
                {
                    e.preventDefault();
                } 
            }
        );

        // Fonction pour gérer l'erreur des champs obligatoires vides
        $('.infoNouveau').blur( 
            function() 
            {
                if($(this).val() == null)
                {
                    $(this).addClass('invalide');
                    $('#errNouvVide').show();
                } 
                else if($(this).val().replace(/ /, '') == '')
                {
                    $(this).addClass('invalide');
                    $('#errNouvVide').show();
                } 
                else 
                {
                    var vide = false;
                    $(this).removeClass('invalide');
                    // On vérifie si on peut cacher le message d'erreur
                    $('.infoNouveau').each(
                        function()
                        {
                            if($(this).val().replace(/ /, '') == '')
                            {
                                vide = true;
                            }
                        }
                    );

                    if(!vide)
                    {
                        $('#errNouvVide').hide();
                    }
                }
            }
        ).change(
            function()
            {
                if($(this).val() == null)
                {
                    $(this).addClass('invalide');
                    $('#errNouvVide').show();
                } 
                else if($(this).val().replace(/ /, '') == '')
                {
                    $(this).addClass('invalide');
                    $('#errNouvVide').show();
                } 
                else 
                {
                    var vide = false;
                    $(this).removeClass('invalide');
                    // On vérifie si on peut cacher le message d'erreur
                    $('.infoNouveau').each(
                        function()
                        {
                            if($(this).val().replace(/ /, '') == '')
                            {
                                vide = true;
                            }
                        }
                    );

                    if(!vide)
                    {
                        $('#errNouvVide').hide();
                    }
                }
            }
        );

        // Fonction pour aller, si possible, à la prochaine page de messages 
        $('#prevCours').click(
            function()
            {
                var numero = $('#numPage').val();
                if(numero > 1)
                {
                    $('#numPage').val(--numero);
                    $('#formChangementPage').submit();
                }
            }
        );

        // Fonction pour aller, si possible, à la page précédente de messages 
        $('#nextCours').click(
            function()
            {
                var numero = $('#numPage').val();
                if($('#totCours').val() > ($('#numPage').val() * 20))
                {
                    $('#numPage').val(++numero);
                    $('#formChangementPage').submit();
                }
            }
        );
    }
);